home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / wgdb-42.lha / wgdb-4.2 / gdb / vx-share / xdr_ld.c < prev    next >
C/C++ Source or Header  |  1992-09-11  |  2KB  |  83 lines

  1. /* xdr_ld.c  - xdr routines for remote dbx interface to VxWorks  */
  2.  
  3. /* Copyright 1984,1985,1986,1987,1988,1989 Wind River Systems, Inc. */
  4. /*extern char copyright_wind_river[]; static char *copyright=copyright_wind_river;*/
  5.  
  6. /*
  7. modification history
  8. --------------------
  9. 01a,05jun90,llk  extracted from xdr_dbx.c.
  10. */
  11.  
  12. /*
  13. DESCRIPTION
  14. This module contains the eXternal Data Representation (XDR) routines
  15. for object files that are downloaded to VxWorks.  They are used by
  16. remote debuggers that use RPC (such as dbxWorks and vxGdb).
  17. */
  18.  
  19. #include "vxWorks.h"
  20. #include "rpc/rpc.h"
  21. #include "xdr_ld.h"
  22.  
  23. /* forward declarations */
  24.  
  25. bool_t xdr_String();       /* xdr routine for argument list */
  26.  
  27.  
  28. /*******************************************************************************
  29. *
  30. * xdr_String - xdr routine for strings.
  31. * Used by xdr_arg_info to handle the actual argument
  32. * strings.  normally calls xdr_string - but does something 
  33. * reasonable encode of null pointer.
  34. */
  35.  
  36. bool_t xdr_String (xdrs, strp)
  37.     XDR    *xdrs;
  38.     char **strp;
  39.  
  40.     {
  41.     if ((*strp == NULL) & (xdrs->x_op == XDR_ENCODE)) 
  42.     return(FALSE);
  43.     else 
  44.     return(xdr_string(xdrs, strp, MAXSTRLEN));
  45.     }
  46. /*******************************************************************************
  47. *
  48. * xdr_ldfile - xdr routine for a single element in the load table 
  49. */
  50.  
  51. bool_t xdr_ldfile (xdrs, objp)
  52.     XDR *xdrs;
  53.     ldfile *objp;
  54.  
  55.     {
  56.     if (! xdr_String(xdrs, &objp->name)) 
  57.     return(FALSE);
  58.     if (! xdr_int(xdrs, &objp->txt_addr)) 
  59.     return(FALSE);
  60.     if (! xdr_int(xdrs, &objp->data_addr)) 
  61.     return(FALSE);
  62.     if (! xdr_int(xdrs, &objp->bss_addr)) 
  63.     return(FALSE);
  64.  
  65.     return(TRUE);
  66.     }
  67. /*******************************************************************************
  68. *
  69. * xdr_ldtabl -
  70. *
  71. * xdr routine for a list of files and load addresses loaded into VxWorks.
  72. */
  73.  
  74. bool_t xdr_ldtabl (xdrs,objp)
  75.     XDR *xdrs;
  76.     ldtabl *objp;
  77.  
  78.     {
  79.     return (xdr_array (xdrs, (char *) &objp->tbl_ent, (UINT *) &objp->tbl_size, 
  80.         MAXTBLSZ, sizeof(ldfile), xdr_ldfile));
  81.     }
  82.